#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Arquitectura de referencia en commonKads. Controlador.
Este módulo contiene todos los objetos del controlador
en la arquitectura MVC (Modelo Vistas Controlador) de la arquitectura
de referencia de CommonKads.
  
"""
__author__ = "Arenas y Jurado"
__date__ = "30 de Agosto 2010"
__version__ = "$Revision: 0.2 - Basado en la version anterior de arhiju $"
__credits__ = """Universidad de Cordoba""" 
import ckVistas
import ckModeloAp
#import plncofelu
import codecs
 

#--------------------GESTORES DE EVENTOS------------------------------------

def event_say_hi():
    '''
    Gestor de eventos básico
    '''
    
    print "hi there, everyone!"

 
def event_DocumentsView(parent):
    '''
    Gestor de eventos básico para el reconocimiento de personas.
    '''
    print 'Presenta la ventana de documentos'
    cd_rec=ckVistas.CDDocumentsView(parent,'Visualizacion de Documentos')

def event_DocumentsViewFromCorpus(parent):
    pass
    '''
    Gestor de eventos basico para el reconocimiento de personas.
    '''
    print 'Presenta la ventana de documentos de un corpus'
    cd_rec=ckVistas.CDCorpusTrain(parent,'Entrenamiento de un clasificador de Documentos')


def event_MachineLearningClassify(parent):
    cd_ml=ckVistas.CDCorpusTrainClassify(parent,'Clasificador Bayesiano (mediante aprendizaje)')

def event_MetodoPoda(parent):
	cd_ml=ckVistas.Poda(parent,'Método de la poda (mediante reglas)')
    
def event_OpenOntologie(ontoName,dW):
    '''
    Gestor de eventos basico para el reconocimiento de personas.
    '''
    print 'Abre la ontología de emails',ontoName
    lt=ckModeloAp.getSubjects(source=ontoName,tr=0)
    print lt
    dW.setlist(lt)
   
def event_GetBodyTextOntologie(ontoName,subject,dW):
    '''
    Gestor de eventos básico para el reconocimiento de personas.
    '''
    print 'Abre la ontología de emails',ontoName
    print subject
    lt=ckModeloAp.getBody(source=ontoName,subject=subject,tr=False)
    print lt
    dW.setvalue(lt)
   

def event_About(parent):
    '''
    Gestor de eventos básico para el reconocimiento de personas.
    '''
    cd_About=ckVistas.About(parent)
    cd_About.about.show()
    pass
    return

def event_ExtractPropertiesFromText(text,word_features,dW,tr):
    
    features=ckModeloAp.paragraph_features_w(paragraph=text,word_features=word_features,tr=1)
    print features
    print type(features)
    lf=[]
    for p in features.keys():
        print p
        el= p+' = '+ str(features[p])
        lf.append(el)
    dW.setlist(lf)
    pass

def event_TrainClassifier(corpusName,nWords,modelClassify,percentTrain,
                          tr=True):
    print 'Entra en event_TrainClassifier'
    
    cl=ckModeloAp.trainClassifier_Task(corpusName=corpusName,
                               nWords=nWords,
                               modelClassify=modelClassify,
                               percentTrain=percentTrain,
                               tr=True)
    return cl

    
def event_MetodoPodaManual(parent):
	cd_ml=ckVistas.PodaManual(parent,'Clasificacion de texto Manual (Método de la Poda)')


def event_EvaluarPoda(parent):
	cd_ml=ckVistas.EvaluarPoda(parent,'Evaluar Metodo de Poda')
 
if __name__ == "__main__":
    pass
     
    print ckModeloAp.parrafos_txt
